package com.techsoul.module.basic.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.techsoul.module.basic.pojo.param.StoreSearchParam;
import com.techsoul.module.basic.pojo.param.SupplierSaveParam;
import com.techsoul.module.basic.pojo.param.SupplierSearchParam;
import com.techsoul.module.basic.pojo.vo.CustomerVo;
import com.techsoul.module.basic.pojo.vo.SupplierVo;

import java.util.List;

/**
 * 供应商 Service接口
 * 
 * @author liuen
 * @date 2021-01-26
 */
public interface ISupplierService {

    /**
     * 新增
     * @param params
     * @return
     */
    String insert(SupplierSaveParam params);

    /**
     * 删除
     * @param id
     * @return
     */
    Integer delete(String id);

    /**
     * 批量删除
     * @param idList
     */
    Integer batchDelete(List<String> idList);

    /**
     * 修改
     * @param params
     * @return
     */
    Integer update(SupplierSaveParam params);
    /**
     * 批量删除
     * @param idList
     */
    Integer logicalDelete(List<String> idList);
    /**
     * 获得地区企业数
     *
     * @return
     */
    Integer findTotalCompany(String site);
    /**
     * 详情
     * @param id
     * @return
     */
    SupplierVo findById(String id);

    /**
     * 列表
     * @param params
     * @return
     */
    List<SupplierVo> findAll(SupplierSearchParam params);
    List<SupplierVo> materialSupplierList(String materialNo);
     /**
     * 合同到期列表-分页
     * @param params
     * @param current
     * @param pageSize
     * @return
     */
    IPage<SupplierVo> findContractExppage(SupplierSearchParam params, Integer current, Integer pageSize);
    /**
     * 列表-分页
     * @param params
     * @param current
     * @param pageSize
     * @return
     */
    IPage<SupplierVo> findAll(SupplierSearchParam params, Integer current, Integer pageSize);
    /**
     * 校验供应商编码
     * @param params
     * @return
     */
    Boolean checkCode(SupplierSearchParam params);
    /**
     * 通过编码查询
     * @param code
     * @return
     */
    SupplierVo findByCode(String code);

    void fixdata();
}
